<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
    <script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<h1>Spring MVC 入门</h1>
<a href="start/hello/111?username=中文&password=123&age=25">Spring MVC Start</a>

<hr/>
<%--实体类型（JavaBean）
提交表单的name和JavaBean中的属性名称需要一致
如果一个JavaBean类中包含其他的引用类型，那么表单的name属性需要编写成：对象.属性。例如：address.name--%>
<form action="/start/save" method="post">
    姓名：<input type="text" name="username"><br/>
    密码：<input type="text" name="password"><br/>
    年龄：<input type="text" name="age"><br/>
    账户名:<input type="text" name="account.aname"><br/>
    账户日期：<input type="text" name="account.createDate"><br/>
    <input type="submit" value="提交">
</form>

<hr/>
<a href="javascript:void(0)" onclick="javascript:sendReq();">异步提交(json)</a>
<script>
    function sendReq() {
        //前端通过ajax发送json请求：
        $.ajax({
            type:"post", //请求方式,默认是GET
            url:"${pageContext.request.contextPath}/start/testResponseJson",
            contentType:"application/json;charset=utf-8",
            data:'{"username":"tom","password":"123","age":99}',
            dataType:"json",
            success:function(data){
                alert(data);
                alert(data.username);
            }
        });
        /* 这种方式不能设置conten-type，所以不能发送json请求，即使下面的data参数
        可以写为json形式的，但jquery还是会把它转为username=jack&age=23的形式发出去
        $.post("ajaxServlet", {"username":"jack","age":23}, function (data) {

        });*/
    }
</script>

<hr/>
<h3>传统方式上传文件</h3>
<form action="/fileupload1" method="post" enctype="multipart/form-data">
    Username: <input type="text" name="username"><br/>
    选择文件：<input type="file" name="uploadfile"/><br/>
    <input type="submit" value="上传">
</form>

<hr/>
<h3>SpringMVC 方式上传文件</h3>
<form action="/fileupload2" method="post" enctype="multipart/form-data">
    Username: <input type="text" name="username"><br/>
    选择文件：<input type="file" name="uploadfile"/><br/>
    <input type="submit" value="上传">
</form>

<hr/>
<h3>SpringMVC 跨服务器上传文件</h3>
<form action="/fileupload3" method="post" enctype="multipart/form-data">
    Username: <input type="text" name="username"><br/>
    选择文件：<input type="file" name="upload"/><br/>
    <input type="submit" value="上传">

<hr/>
<h3>异常处理</h3>
<a href="testException">异常处理</a>

<hr/>
<h3>SpringMVC拦截器</h3>
<a href="/user/testInterceptor">拦截器</a>
</form>
</body>
</html>
